﻿using Real.Entidad;
using Real.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Real.UI
{
    public partial class frmProducto : Form
    {
        public string operacion { get; set; }
        public int producto_id { get; set; }
        public frmProducto(string op)
        {
            operacion = op;

            InitializeComponent();
        }

        public frmProducto(string op, int id)
        {
            operacion = op;
            producto_id = id;

            InitializeComponent();
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmProducto_Load(object sender, EventArgs e)
        {          
            if(operacion == "EDICION")
            {
                GetProveedores();
                GetCategorias();

                GetProducto(producto_id);
            }
            else
            {
                IniciarControles();

                GetProveedores();
                GetCategorias();
            }
        }

        private void IniciarControles()
        {
            cmbMarca.DataSource = null;
            cmbMarca.Items.Add("Seleccione un Proveedor...");
            cmbMarca.SelectedIndex = 0;
        }

        private void GetProveedores()
        {
            IList<Proveedor> datos = Proveedores.FindAll();
            Proveedor item = new Proveedor();
            item.id = 0;
            item.nombre = "Seleccione...";
            datos.Insert(0, item);

            cmbProveedor.ValueMember = "id";
            cmbProveedor.DisplayMember = "nombre";
            cmbProveedor.DataSource = datos;
        }

        private void GetCategorias()
        {
            cmbCategoria.ValueMember = "id";
            cmbCategoria.DisplayMember = "nombre";
            cmbCategoria.DataSource = Categorias.FindAll();
        }

        private void cmbProveedor_SelectionChangeCommitted(object sender, EventArgs e)
        {
            if (Convert.ToInt32(cmbProveedor.SelectedValue) != 0)
            {
                cmbMarca.ValueMember = "id";
                cmbMarca.DisplayMember = "denominacion";
                cmbMarca.DataSource = Marcas.FindByIdProveedor(Convert.ToInt32(cmbProveedor.SelectedValue));
            }
            else
            {
                IniciarControles();
            }
        }


        private void GetMarcas(int proveedor_id)
        {
            cmbMarca.ValueMember = "id";
            cmbMarca.DisplayMember = "denominacion";
            cmbMarca.DataSource = Marcas.FindByIdProveedor(proveedor_id);
        }

        private void GetProducto(int id)
        {
            Producto producto = Productos.FindByIdWithProveedorMarcaCategoria(id);
            txtDenominacion.Text = producto.denominacion;
            cmbCategoria.Text = producto.categoria.nombre;
            cmbMarca.Text = producto.marca.denominacion;
            cmbProveedor.Text = producto.proveedor.nombre;
            txtCosto.Text = producto.costo.ToString();
            txtDescripcion.Text = producto.descripcion;
            txtGarantia.Value = producto.garantia;
            txtIva.Text = producto.iva.ToString();
            txtMargen.Text = producto.margen.ToString();
            txtMetros.Text = producto.metros.ToString();

            GetMarcas(producto.proveedor_id);
         
        }

    }
}
